Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dotnet 6.0.100 #92991

Closed
wants to merge 6 commits into from
Closed

dotnet 6.0.100 #92991

wants to merge 6 commits into from

Conversation

asbjornu
Copy link
Contributor

  • Have you followed the guidelines for contributing?
  • Have you ensured that your commits follow the commit style guide?
  • Have you checked that there aren't other open pull requests for the same formula update/change?
  • Have you built your formula locally with brew install --build-from-source <formula>, where <formula> is the name of the formula you're submitting?
  • Is your test running fine brew test <formula>, where <formula> is the name of the formula you're submitting?
  • Does your build pass brew audit --strict <formula> (after doing brew install --build-from-source <formula>)? If this is a new formula, does it pass brew audit --new <formula>?

Formula/dotnet.rb Outdated Show resolved Hide resolved
@carlocab carlocab added the CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. label Jan 12, 2022
Copy link
Member

@carlocab carlocab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should be able to remove this line:

depends_on arch: :x86_64

Formula/dotnet.rb Outdated Show resolved Hide resolved
@samuel-lucas6 samuel-lucas6 mentioned this pull request Jan 17, 2022
6 tasks
Formula/dotnet.rb Outdated Show resolved Hide resolved
@cho-m cho-m mentioned this pull request Jan 24, 2022
@cho-m cho-m added CI-linux-self-hosted Build on Linux self-hosted runner CI-long-timeout [DEPRECATED] Use longer GitHub Actions CI timeout. long build Set a long timeout for formula testing labels Feb 12, 2022
Formula/dotnet.rb Outdated Show resolved Hide resolved
@cho-m cho-m changed the title dotnet 6.0.100 dotnet 6.0.102 Feb 12, 2022
@cho-m cho-m removed the CI-long-timeout [DEPRECATED] Use longer GitHub Actions CI timeout. label Feb 13, 2022
@asbjornu
Copy link
Contributor Author

Thanks for digging into this, @cho-m! As per dotnet/source-build#2756, I've changed the tag and revision to v6.0.102-source-build. Let's see how that goes! 😃

@cho-m
Copy link
Member

cho-m commented Feb 14, 2022

Thanks for digging into this, @cho-m! As per dotnet/source-build#2756, I've changed the tag and revision to v6.0.102-source-build. Let's see how that goes! 😃

I've tried it locally and it still hit the same issue.

I'm now trying a local build by backtracking to v6.0.100 along with any missing patches. If it works, I'll push the changes here.

Note that CI is going to be blocked until queue frees up since we only allow 2 CI-long-timeout PRs to be active

@cho-m cho-m changed the title dotnet 6.0.102 dotnet 6.0.100 Feb 14, 2022
@cho-m
Copy link
Member

cho-m commented Feb 14, 2022

Local Intel build finally succeeded, though I don't see any linkage to [email protected] and icu4c. If ARM still builds, then should be good on macOS side and can focus on Linux build.

Previously, it took over 6 hours for Linux build of .NET 5, so can only hope that it works as-is.

@carlocab carlocab added the CI-long-timeout [DEPRECATED] Use longer GitHub Actions CI timeout. label Feb 15, 2022
@cho-m

This comment was marked as resolved.

@cho-m
Copy link
Member

cho-m commented Feb 15, 2022

Didn't expect archi-steam-farm to pass CI test.

As expected, gitversion and dafny both failed as they were built for net5.0.

Locally, I had some trouble compiling gitversion with --runtime osx-arm64. Not sure if this is due to some missing components. If I compile for multiple runtime, then it successfully builds.

Snippet of GitVersion build with diag logs
                     Output Item(s):
                         TargetingPack=
                             Microsoft.NETCore.App
                                     NuGetPackageId=Microsoft.NETCore.App.Ref
                                     NuGetPackageVersion=3.1.0
                                     PackageConflictPreferredPackages=Microsoft.NETCore.App.Ref;Microsoft.NETCore.App.Runtime.linux-arm;Microsoft.NETCore.App.Runtime.linux-arm64;Microsoft.NETCore.App.Runtime.linux-musl-arm64;Microsoft.NETCore.App.Runtime.linux-musl-x64;Microsoft.NETCore.App.Runtime.linux-x64;Microsoft.NETCore.App.Runtime.osx-x64;Microsoft.NETCore.App.Runtime.rhel.6-x64;Microsoft.NETCore.App.Runtime.tizen.4.0.0-armel;Microsoft.NETCore.App.Runtime.tizen.5.0.0-armel;Microsoft.NETCore.App.Runtime.win-arm;Microsoft.NETCore.App.Runtime.win-arm64;Microsoft.NETCore.App.Runtime.win-x64;Microsoft.NETCore.App.Runtime.win-x86
                                     RuntimeFrameworkName=Microsoft.NETCore.App
                                     RuntimePackRuntimeIdentifiers=linux-arm;linux-arm64;linux-musl-arm64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86
                                     TargetFramework=netcoreapp3.1
                                     TargetingPackFormat=
                             Microsoft.AspNetCore.App
                                     NuGetPackageId=Microsoft.AspNetCore.App.Ref
                                     NuGetPackageVersion=3.1.10
                                     PackageConflictPreferredPackages=Microsoft.AspNetCore.App.Ref;Microsoft.AspNetCore.App.Runtime.win-x64;Microsoft.AspNetCore.App.Runtime.win-x86;Microsoft.AspNetCore.App.Runtime.win-arm;Microsoft.AspNetCore.App.Runtime.osx-x64;Microsoft.AspNetCore.App.Runtime.linux-musl-x64;Microsoft.AspNetCore.App.Runtime.linux-musl-arm64;Microsoft.AspNetCore.App.Runtime.linux-x64;Microsoft.AspNetCore.App.Runtime.linux-arm;Microsoft.AspNetCore.App.Runtime.linux-arm64
                                     RuntimeFrameworkName=Microsoft.AspNetCore.App
                                     RuntimePackRuntimeIdentifiers=win-x64;win-x86;win-arm;osx-x64;linux-musl-x64;linux-musl-arm64;linux-x64;linux-arm;linux-arm64
                                     TargetFramework=netcoreapp3.1
                                     TargetingPackFormat= (TaskId:72)
                   Done executing task "ProcessFrameworkReferences". (TaskId:72)
                   Set Property: AppHostRuntimeIdentifier=osx-arm64
                   Using "ResolveAppHosts" task from assembly "/opt/homebrew/Cellar/dotnet/6.0.100/libexec/sdk/6.0.100/Sdks/Microsoft.NET.Sdk/targets/../tools/net6.0/Microsoft.NET.Build.Tasks.dll".
                   Task "ResolveAppHosts" (TaskId:73)
                     Task Parameter:TargetingPackRoot=/opt/homebrew/Cellar/dotnet/6.0.100/libexec/packs (TaskId:73)
                     Task Parameter:DotNetComHostLibraryNameWithoutExtension=comhost (TaskId:73)
                     Task Parameter:NetCoreTargetingPackRoot=/opt/homebrew/Cellar/dotnet/6.0.100/libexec/packs (TaskId:73)
                     Task Parameter:DotNetIjwHostLibraryNameWithoutExtension=Ijwhost (TaskId:73)
                     Task Parameter:
                         KnownAppHostPacks=
                             Microsoft.NETCore.App
                                     AppHostPackNamePattern=Microsoft.NETCore.App.Host.**RID**
                                     AppHostPackVersion=6.0.0
                                     AppHostRuntimeIdentifiers=linux-arm;linux-arm64;linux-musl-arm64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm;osx-arm64;linux-s390x;osx-arm64
                                     TargetFramework=net6.0
                             Microsoft.NETCore.App
                                     AppHostPackNamePattern=Microsoft.NETCore.App.Host.**RID**
                                     AppHostPackVersion=5.0.12
                                     AppHostRuntimeIdentifiers=linux-arm;linux-arm64;linux-musl-arm64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm
                                     TargetFramework=net5.0
                             Microsoft.NETCore.App
                                     AppHostPackNamePattern=Microsoft.NETCore.App.Host.**RID**
                                     AppHostPackVersion=3.1.21
                                     AppHostRuntimeIdentifiers=linux-arm;linux-arm64;linux-musl-arm64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86
                                     TargetFramework=netcoreapp3.1
                             Microsoft.NETCore.App
                                     AppHostPackNamePattern=Microsoft.NETCore.App.Host.**RID**
                                     AppHostPackVersion=3.0.3
                                     AppHostRuntimeIdentifiers=linux-arm;linux-arm64;linux-musl-arm64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86
                                     TargetFramework=netcoreapp3.0 (TaskId:73)
                     Task Parameter:TargetFrameworkIdentifier=.NETCoreApp (TaskId:73)
                     Task Parameter:DotNetAppHostExecutableNameWithoutExtension=apphost (TaskId:73)
                     Task Parameter:DotNetSingleFileHostExecutableNameWithoutExtension=singlefilehost (TaskId:73)
                     Task Parameter:TargetFrameworkVersion=3.1 (TaskId:73)
                     Task Parameter:AppHostRuntimeIdentifier=osx-arm64 (TaskId:73)
                     Task Parameter:RuntimeGraphPath=/opt/homebrew/Cellar/dotnet/6.0.100/libexec/sdk/6.0.100/RuntimeIdentifierGraph.json (TaskId:73)
03:43:42.663  1:20>/opt/homebrew/Cellar/dotnet/6.0.100/libexec/sdk/6.0.100/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(129,5): error NETSDK1084: There is no application host available for the specified RuntimeIdentifier 'osx-arm64'. [/private/tmp/gitversion-20220214-92998-2kgprj/GitVersion-5.8.1/src/GitVersion.App/GitVersion.App.csproj]

EDIT: macOS dependent results are reasonable:

  • dafny is expected to fail on Monterey since openjdk@11 isn't bottled yet.
  • gitversion is failing on both ARM due to above error.
  • archi-steam-farm build/test passes

Now waiting on Linux...

@fabiomadge fabiomadge mentioned this pull request Feb 15, 2022
6 tasks
@arturcic
Copy link
Contributor

arturcic commented Feb 16, 2022

Locally, I had some trouble compiling gitversion with --runtime osx-arm64. Not sure if this is due to some missing components. If I compile for multiple runtime, then it successfully builds.

I think there is an additional -p:OsxArm64=true that needs to be added only for arm64 osx

@cho-m cho-m removed CI-issue Failure due to temporary CI issue linux Linux is specifically affected labels Feb 16, 2022
@carlocab
Copy link
Member

dotnet bottle build failed on Catalina, but building it from source succeeded when building dotnet as a dependency of archi-steam-farm. Hoping that was just a fluke, so I've restarted the build.

@cho-m
Copy link
Member

cho-m commented Feb 17, 2022

Some things that need to be checked/done:

  • Upstream local patches
  • Do we need to manually delete /tmp/dotnet-sources/, which would be 40+ GB at end of PR? I'm not sure about how CI runners are cleaned up between PRs. Currently, I did not do a sourcesdir.rmtree as logic is based on swift's out-of-buildpath logic - dotnet: ensure sources are cleaned up after install #95302
  • Check for llvm (and gcc-11, which is installed as dependency) linkage on Linux.
    • Libs are within gcc-5's glibc/cxx. Low priority of checking libunwind usage as it isn't linked.

Things that can be done in separate PR or here:

  • Continue looking into getting update to v6.0.102-source-build - dotnet 6.0.102 #95339
  • Fix dafny build on Linux - dafny: fix Linux build #95334
      ==> ./configure
      'python' not found. Try to set the environment variable PYTHON.
    
  • Fix ARM build for gitversion. -p:OsxArm64=true did work locally - gitversion: fix build on macOS ARM #95305
    file /opt/homebrew/Cellar/gitversion/5.8.1/libexec/*
    /opt/homebrew/Cellar/gitversion/5.8.1/libexec/GitVersion.xml:        XML 1.0 document text, ASCII text
    /opt/homebrew/Cellar/gitversion/5.8.1/libexec/gitversion:            Mach-O 64-bit executable arm64
    /opt/homebrew/Cellar/gitversion/5.8.1/libexec/libgit2-b7bad55.dylib: Mach-O 64-bit dynamically linked shared library arm64

@carlocab
Copy link
Member

Copy link
Member

@carlocab carlocab left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to get this shipped since a number of other PRs have been waiting for this update.

Thanks, @asbjornu, @cho-m!

@carlocab carlocab removed the CI-long-timeout [DEPRECATED] Use longer GitHub Actions CI timeout. label Feb 17, 2022
@cho-m
Copy link
Member

cho-m commented Feb 17, 2022

I'd like to get this shipped since a number of other PRs have been waiting for this update.

@carlocab Fine with me as the items can be explored outside merge.

I was mainly worried about /tmp space since I saw deno PR just run out-of-space on Monterey CI and was wondering if it was possible for leftover data to leak between PRs. Don't know exact reason for issue there though since I haven't accessed CI runners.

@cho-m cho-m added ready to merge PR can be merged once CI is green and removed in progress Stale bot should stay away labels Feb 17, 2022
@BrewTestBot
Copy link
Member

:shipit: @SMillerDev has triggered a merge.

Copy link
Member

@SMillerDev SMillerDev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @asbjornu and @cho-m ! Without contributions like yours it'd be impossible to keep homebrew going with the high standards that users have come to expect from the project. You can feel good knowing that you've made the world a tiny bit better for homebrew users around the world! 👍 🎉

@asbjornu asbjornu deleted the feature/dotnet6 branch February 17, 2022 10:21
@Bo98
Copy link
Member

Bo98 commented Feb 17, 2022

  • Do we need to manually delete /tmp/dotnet-sources/, which would be 40+ GB at end of PR? I'm not sure about how CI runners are cleaned up between PRs. Currently, I did not do a sourcesdir.rmtree as logic is based on swift's out-of-buildpath logic.

This should be fixed with high priority. This does not happen with Swift as buildpath.parent is still within the the formula's temp directory. This is not the case for git clone formulae, so buildpath.parent is not safe here.

@cho-m
Copy link
Member

cho-m commented Feb 17, 2022

  • Do we need to manually delete /tmp/dotnet-sources/, which would be 40+ GB at end of PR? I'm not sure about how CI runners are cleaned up between PRs. Currently, I did not do a sourcesdir.rmtree as logic is based on swift's out-of-buildpath logic.

This should be fixed with high priority. This does not happen with Swift as buildpath.parent is still within the the formula's temp directory. This is not the case for git clone formulae, so buildpath.parent is not safe here.

I was worried about that. Probably need to clean out some of CI runners since there may be some leftover data.

Would something like following work for moving into subdirectories:

--- a/Formula/dotnet.rb
+++ b/Formula/dotnet.rb
@@ -71,10 +71,12 @@ class Dotnet < Formula
     # TODO: Remove this in future release with .NET runtime v6.0.2+
     (buildpath/"src/SourceBuild/tarball/patches/runtime").install resource("runtime-clang13-patch")

-    sourcedir = buildpath.parent/"dotnet-sources"
-    system "./build.sh", "/p:ArcadeBuildTarball=true",
-                         "/p:TarballDir=#{sourcedir}"
-    cd sourcedir
+    (buildpath/"installer").install buildpath.children
+    cd "installer" do
+      system "./build.sh", "/p:ArcadeBuildTarball=true",
+                           "/p:TarballDir=#{buildpath}/sources"
+    end
+    cd "sources"
     # Disable package validation in source-build for reliability
     # PR ref: https://github.com/dotnet/runtime/pull/60881
     # TODO: Remove this in the next release

@carlocab
Copy link
Member

Does the TarballDir have to be next to the directory where the installer repo is cloned?

@cho-m
Copy link
Member

cho-m commented Feb 17, 2022

Does the TarballDir have to be next to the directory where the installer repo is cloned?

No, just somewhere outside the installer repo

@carlocab
Copy link
Member

Ok, then I think #95302 should hopefully do the trick.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI-linux-self-hosted Build on Linux self-hosted runner CI-no-fail-fast Continue CI tests despite failing GitHub Actions matrix builds. dotnet .NET use is a significant feature of the PR or issue long build Set a long timeout for formula testing no ARM bottle Formula has no ARM bottle ready to merge PR can be merged once CI is green
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants